package cc.rengu.igas.share.core.realize;

import cc.rengu.igas.share.core.model.*;

import java.util.List;

/**
 * 运营管理模块组件服务
 * Created by wangcheng on 2021/6/25 13:52
 */
public interface BompService {
    /**
     * 根据联行行号查询联行行号信息
     *
     * @param bankBranchCode 人行联行行号
     * @return 人行联行行号信息
     * @throws Exception 异常
     */
    BankCodeInfo getBankCodeInfoByBandBranchCode(String bankBranchCode) throws Exception;

    /**
         * 根据银联机构号查询联行行号信息
     *
     * @param cupsInstId    银联机构标识
     * @param villageBankId 村镇银行标识（对应卡BIN表中的cardSign字段）
     * @return 人行联行行号信息
     * @throws Exception 异常
     */
    BankCodeInfo getBankCodeInfoByCupsInstId(String cupsInstId, String villageBankId) throws Exception;

    /**
     * 获取营销广告配置信息
     *
     * @param instId 多法人标识
     * @param adType 营销广告类型
     * @return 营销广告信息
     * @throws Exception 异常
     */
    List<MarketingAdsInfo> getMarketingAdsInfo(String instId, String adType) throws Exception;

    /**
     * 根据机构号或者机构名称查询机构及其下属机构信息
     *
     * @param instId  多法人标识
     * @param orgType 机构类型
     * @param orgCode 机构号
     * @return 机构信息
     * @throws Exception 异常
     */
    OrgInfo getOrgInfo(String instId, String orgType, String orgCode) throws Exception;

    /**
     * 根据二维码URL或者二维码code查询二维码信息
     *
     * @param instId 多法人标识
     * @param qrUrl  二维码URL
     * @param qrCode 二维码CODE
     * @return 二维码信息
     * @throws Exception 异常
     */
    QrCodeInfo getQrCodeInfo(String instId, String qrUrl, String qrCode) throws Exception;

    /**
     * 获取EMV参数信息
     *
     * @param instId 多法人标识
     * @return EMV参数配置信息
     * @throws Exception 异常
     */
    List<EmvParamInfo> getEmvParamInfo(String instId) throws Exception;
    /**
     * 根据商户号查询商户基本信息
     *
     * @param mchntNo 商户号
     * @return 商户基本信息
     * @throws Exception 异常
     */
    MchntBaseInfo getMchntBaseInfoByMchntNo(String mchntNo) throws Exception;
}
